package cn.zwx.member.svc.rpc.facade;

import cn.zwx.base.entity.ResponseEntity;
import cn.zwx.base.exception.BizWrapException;
import cn.zwx.member.svc.rpc.dto.*;
import cn.zwx.member.svc.rpc.vo.LoginVO;
import cn.zwx.member.svc.rpc.vo.MemberInfoVO;
import cn.zwx.member.svc.rpc.vo.MemberRegisterVO;
import cn.zwx.member.svc.rpc.vo.UserSignCountVO;

/**
 * @author zhangwenxue
 */
public interface DubboMemberService {


    /**
     * 根据用户id查询用户信息
     * @param dto 请求参数
     * @return 返回用户信息
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<MemberInfoVO> queryMemberInfo(MemberInfoDTO dto) throws BizWrapException;


    /**
     * 注册用户
     * @param dto 请求参数
     * @return 返回用户信息
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<MemberRegisterVO> register(MemberRegisterDTO dto) throws BizWrapException;


    /**
     * 用户登录
     * @param dto 请求参数
     * @return 返回用户信息
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<LoginVO> login(LoginDTO dto) throws BizWrapException;

    /**
     * 修改用户信息
     * @param dto 请求参数
     * @return 返回参数
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<Void> modify(ModifyUserDTO dto)throws BizWrapException;

    /**
     * 修改密码接口
     * @param  dto 修改请求参数
     * @throws BizWrapException 业务异常
     * @return 返回参数
     */
    ResponseEntity<Void> modifyPassword(ModifyPasswordDTO dto)throws BizWrapException;

    /**
     * 忘记密码接口
     * @param  dto 修改请求参数
     * @throws BizWrapException 业务异常
     * @return 返回参数
     */
    ResponseEntity<Void> resetPassword(RestPasswordDTO dto)throws BizWrapException;

    /**
     * 用户实名认证接口
     * @param dto 请求参数
     * @return ResponseEntity<Void>
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<Void> authentication(AuthenticationDTO dto)throws BizWrapException;


    /**
     * 发送通知短信
     * @param  dto 修改请求参数
     * @throws BizWrapException 业务异常
     * @return 返回参数
     */
    ResponseEntity<Void> sendMsg(SendMsgDTO dto)throws BizWrapException;


    /**
     *  用户签到
     * @param dto 请求参数
     * @return 返回参数
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<Void> userSign(UserSignDTO dto) throws BizWrapException;


    /**
     *  查询本月用户连续签到天数
     * @param dto 请求参数
     * @return 返回参数
     * @throws BizWrapException 业务异常
     */
    ResponseEntity<UserSignCountVO> userSignCount(UserSignCountDTO dto) throws BizWrapException;






}
